#include "driver/gpio.h"

typedef enum {
    GPIO_LEVEL_OFF = 0,
    GPIO_LEVEL_ON
} gpio_level_t;

typedef struct {
    gpio_num_t num;
    gpio_mode_t mode;
    gpio_level_t level;
} gpio_t;


#define GPIO_DEFAULT_CONFIG() { \
    .num = GPIO_NUM_2,           \
    .mode = GPIO_MODE_OUTPUT,     \
    .level = GPIO_LEVEL_ON              \
};

void gpio_set_output(gpio_num_t gpio_num);

void gpio_set_on(gpio_num_t gpio_num);

void gpio_set_off(gpio_num_t gpio_num);

void gpio_init(gpio_t *gpio);

void gpio_on(gpio_t *gpio);